/**
 * @description 文件大小相关的工具函数
 */

/**
 * 将字节数转换为人类可读的大小表示
 * @param byte 字节数
 * @returns 人类可读的大小表示
 */
export function byteToHumanReadable(byte: number | string | undefined): string | undefined {
  if (byte == null) return undefined;
  if (typeof byte === 'string') {
    byte = Number(byte);
    if (isNaN(byte)) return undefined;
  }

  if (byte < 1024) {
    return `${byte}B`;
  }
  if (byte < 1024 * 1024) {
    return `${(byte / 1024).toFixed(2)}KB`;
  }
  if (byte < 1024 * 1024 * 1024) {
    return `${(byte / 1024 / 1024).toFixed(2)}MB`;
  }
  return `${(byte / 1024 / 1024 / 1024).toFixed(2)}GB`;
}

/**
 * 将 MB 数转换为字节数
 * @param megabyte MB 数
 * @returns 字节数
 */
export function megabyteToByte(megabyte: number | undefined): number | undefined {
  if (megabyte == null) return undefined;
  return megabyte * 1024 * 1024;
}
